package com.yuntsg.nnsfcp.service.front;


import com.yuntsg.nnsfcp.config.UploadConfig;
import com.yuntsg.nnsfcp.service.back.BackService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;

//用于处理前天业务的服务 2020年12月8日13:01:39 TODO gcr
@Slf4j
@Service
public class FrontService {

    @Resource
    HttpServletRequest request;

    @Resource
    UploadConfig uploadConfig;

    @Resource
    BackService backService;


//    public OrderBaseInfoWord handleWordToBean(MultipartFile file) throws Exception {
//
////        String filePath = "F:\\qfworkspace\\idea\\novelty_qbs\\src\\main\\java\\com\\qf\\nnsfcp\\ceshi\\查新委托单(最新)--20201203.doc";
//        String s = backService.uplaodFile(file);
//        //把提交的订单更新到字段里面
//
//
//        String filePath = request.getServletContext().getRealPath(s);
//        Document doc = new Document(filePath);
//        //读取非table 的数据测试 现在有个问题 如果用户动了下表格就完了 读取不到了,,
//        OrderBaseInfoWord orderBaseInfo = new OrderBaseInfoWord();
//        orderBaseInfo.setChaxinContract(s);
//        //进行赋值 2020年12月7日10:17:03
//        Paragraph[] paragraphs = doc.getFirstSection().getBody().getParagraphs().toArray();
//        for (int i = 0; i < paragraphs.length; i++) {
//            Paragraph paragraph = paragraphs[i];
//            String text = paragraph.getText();
//            if (text.contains("检索词：请提供5—10个中英文对照查新关键词")) {
//                String searchPoint = paragraphs[i + 2].getText();
//                orderBaseInfo.setCxPoints(searchPoint);
//            }
//            if (text.contains("参考文献：请列出3—5篇与")) {
//                //计算全部参考文献数量
//                int indexNoEmpty = 0;
//                for (int j = i + 2; j < paragraphs.length; j++) {
//                    if (StringUtils.isEmpty(paragraphs[j].getText().replace(" ", "").trim())) {
//                        indexNoEmpty = j - 1;
//                        break;
//                    }
//                }
//                List<String> referenceArt = new ArrayList<>();
//                for (int j = i + 2; j <= indexNoEmpty; j++) {
//                    referenceArt.add(paragraphs[j].getText());
//                }
//                //保存成json数据 后台展示
//                orderBaseInfo.setReference(JSON.toJSONString(referenceArt));
//            }
//        }
////        for (Paragraph paragraph : paragraphs) {
////            String text1 = paragraph.getText();
////            System.out.println("每个断落内容+++++++++++++++++++++++++");
////            System.out.println(text1);
////        }
////        System.out.println(orderBaseInfo);
//        System.out.println("断落结束++++++++++++++++++++++++++++++");
//
//        //2020年11月22日13:53:00  可以读取特定的表格的cell和row
//        //https://apireference.aspose.com/words/java/com.aspose.words/Table 官方api在 example里面
//        //读取表格
//        TableCollection tables = doc.getFirstSection().getBody().getTables(); //获取全部表格
//        Table[] tablesCollection = tables.toArray();
//        for (Table tempTable : tablesCollection) {
//            Row[] rows = tempTable.getRows().toArray();
//            for (int k = 0; k < rows.length; k++) {
//                Row row = rows[k];
//                CellCollection cells = row.getCells();
//                for (int i = 0; i < cells.getCount(); i++) {
//                    Cell cell = cells.get(i);
//                    String trim = cell.toString(SaveFormat.TEXT).trim();
//                    if (trim.contains("委托人姓名")) {
//                        String wtrName = cells.get(i + 1).toString(SaveFormat.TEXT).trim().replace("中文名：", "");
//                        String wtrNameEn = cells.get(i + 2).toString(SaveFormat.TEXT).trim().replace("英文名：", "");
//                        orderBaseInfo.setWtrName(wtrName);
//                        orderBaseInfo.setWtrNameEn(wtrNameEn);
//                    }
//                    if (trim.contains("委托日期")) {
//                        trim = trim.replace("委托日期", "");
//                        orderBaseInfo.setAddtimeWord(trim);
//                    }
//                    if (trim.contains("项目组成员")) {
//                        String proMem = cells.get(i + 1).toString(SaveFormat.TEXT).trim();
//                        orderBaseInfo.setProjectMem(proMem);
//                    }
//                    if (trim.contains("委托单位")) {
//                        String unitName = cells.get(i + 1).toString(SaveFormat.TEXT).trim();
//                        orderBaseInfo.setUnitName(unitName);
//                    }
//                    if (trim.contains("电    话")) {
//                        String phone = trim.replace("电    话", "");
//                        orderBaseInfo.setPhone(phone);
//                    }
//                    if (trim.contains("地      址")) {
//                        String address = cells.get(i + 1).toString(SaveFormat.TEXT).trim();
//                        orderBaseInfo.setAddress(address);
//                    }
//                    if (trim.contains("邮政编码")) {
//                        String code = trim.replace("邮政编码", "");
//                        orderBaseInfo.setZipCode(code);
//                    }
//                    if (trim.contains("查新项目类别")) {
//                        String searchNewPour = cells.get(i + 1).toString(SaveFormat.TEXT).trim();
//                        if (searchNewPour.contains("立项")) {
//                            orderBaseInfo.setSearchNewPurpose(searchNewPour);
//                        } else {
//                            orderBaseInfo.setCityClass(searchNewPour);
//                        }
//                    }
//                    if (trim.contains("学科分类")) {
//                        String prosub = trim.replace("学科分类", "");
//                        orderBaseInfo.setSubjectSub(prosub);
//                    }
//                    if (trim.equals("要否保密及期限")) {
//                        Row row1 = rows[k + 1];
//                        CellCollection cells1 = row1.getCells();
//                        for (int i1 = 0; i1 < cells1.getCount(); i1++) {
//                            String privary = cells1.get(i1 + 2).toString(SaveFormat.TEXT).trim();
//                            orderBaseInfo.setPrivary(privary);
//                            break;
//
//                        }
//                    }
//                    if (trim.contains("数据库选择")) {
//                        String dbName = cells.get(i + 1).toString(SaveFormat.TEXT).trim();
//                        orderBaseInfo.setDbname(dbName);
//                    }
//                    if (trim.contains("查      新\n" +
//                            "项目名称")) {
//                        String projectCn = cells.get(i + 1).toString(SaveFormat.TEXT).trim().replace("中文：", "");
//                        String projectEn = cells.get(i + 3).toString(SaveFormat.TEXT).trim().replace("英文：", "");
//                        orderBaseInfo.setProjectNameCn(projectCn);
//                        orderBaseInfo.setProjectNameEn(projectEn);
//                    }
//                    if (trim.contains("查新要求：请提供300—500字反映查新项目内容")) {
//                        String replace = trim.replace("查新要求：请提供300—500字反映查新项目内容、关键技术指\n" +
//                                "标或新颖性、先进性的内容简介。", "");
//                        orderBaseInfo.setCxMainPoints(replace);
//                    }
//                    if (trim.contains("检索限制：")) {
//                        System.out.println(trim);
//                        //进行切割获取数据 这块后期处理吧 先不要动 后期他们需要了再说 不好切割
//                        String[] split = trim.split("\r\n");
//                        //处理国内外数据
//                        for (int i1 = 0; i1 < split.length; i1++) {
//                            if (split[i1].contains("查新范围")) {
//                                String nation = handleNationClass(Stream.of(split[i1 + 1], split[i1 + 2], split[i1 + 3]).collect(Collectors.toList()));
//                                orderBaseInfo.setNationalClass(nation);
//                                break;
//                            }
//                        }
//                        for (int i1 = 0; i1 < split.length; i1++) {
//                            if (split[i1].contains("年代：")) {
//                                orderBaseInfo.setSearchYear(split[i1 + 1]);
//                                break;
//                            }
//                        }
//                    }
////                    if (trim.contains("委托人姓名")) {
////                        String wtrName = cells.get(i + 1).toString(SaveFormat.TEXT).trim();
////                        orderBaseInfo.setWtrName(wtrName);
////                    }
//
//                    System.out.println(trim);
//                    System.out.println("cell结束+++++++++++++++++++++");
//                }
////            System.out.println("+++++++++++++++行内容输出结束");
//            }
//
//        }
//        System.out.println(orderBaseInfo);
//
//        System.out.println("表格结束++++++++++++++++++++++++++++++");
//        return orderBaseInfo;
//    }


    public static String handleNationClass(List<String> param) {
        String res = "";
        for (String s : param) {
            if (!s.contains("□")) {
                res = s.replace("□", "").replace(" ", "").trim();
                break;
            }
        }
        return res.replace("þ", "");
    }
}
